﻿using System;
using System.Collections.Generic;
using System.Linq;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Audio;
using Microsoft.Xna.Framework.Content;
using Microsoft.Xna.Framework.GamerServices;
using Microsoft.Xna.Framework.Graphics;
using Microsoft.Xna.Framework.Input;
using Microsoft.Xna.Framework.Media;

namespace RPG_The_Game.Objetos
{
    class Gato:Objetos.Sprite
    {
        public Random random = new Random();

        public static List<Gato> listaGatos = new List<Gato>();

        public Vector2 Posicao
        {
            get
            {
                return posicao;
            }

            set
            {
                posicao = value;
            }
        }

        public animacao andando; 
     
        public Gato(Texture2D textura, Vector2 posicao, Vector2 velocidade, GameWindow window)
            :base(textura)
        {
            this.textura = textura;
            this.posicao = posicao;
            this.velocidade = velocidade;
            this.window = window;
        }

        public Gato(Texture2D textura)
            : base(textura)
        {
            posicao.X = random.Next(30, 750);
            posicao.Y = random.Next(30, 430);

            this.textura = textura;
            //this.window = window;            

            andando = new animacao();
            andando.qtd_quadros = 3;
            andando.quadros_seg = 3;
            andando.Y = 0;
            andando.quadro_X = textura.Width / andando.qtd_quadros;
            andando.quadro_Y = textura.Height / andando.qtd_quadros;
            andando.nome = "andando";

            destino = new Rectangle(0, 0, andando.quadro_X, andando.quadro_Y);

        }

        public override void Update(GameTime gameTime)
        { 
        
        }

        public void Update(GameTime gameTime, Vector2 posicaoRato)
        {
            colisao.X = (int)posicao.X;
            colisao.Y = (int)posicao.Y;
            colisao.Width = (int)andando.quadro_X;
            colisao.Height = (int)andando.quadro_Y;
            
            Vector2.Lerp(ref posicao, ref posicaoRato, 0.01f, out posicao);            
        }

        public bool Bateu(Sprite sprite)
        {
            if (this.colisao.Intersects(sprite.Colisao))
            {
                return true;
            }

            else
                return false;
        }
    }
}
